package com.gupaoedu.example.springbootstarterdemo;

import com.gupaoedu.starter.HelloFormatTemplate;
import com.gupaoedu.starter.format.FormatProcessor;
import com.gupaoedu.starter.format.JsonFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @
 */
@RestController
public class FormatController {



    @Autowired
    private HelloFormatTemplate helloFormatTemplate;
//    private


    /**
     * STRING: Execute Format: Obj format result：StringFormatProcessorUser{name='jll', age=20}
     * JSON:   Execute Format: Obj format result：JsonFormatProcessor{"age":20,"name":"jll"}
     */
    @GetMapping(value = "/formatAutoConfiguration")
    public String format1(){
        User user = new User();
        user.setName("jll");
        user.setAge(20);

        //当前classpath里没有fastjson，就返回string格式。 有就返回json格式
        //注意：是这个项目的class path下没有JSON的包，是这个项目。。
        return helloFormatTemplate.doFormat(user);

    }


    /**
     *如果只是单纯的引入maven依赖，那么使用HelloFormatTemplate里的方法，就是这么用的。。
     * ：不方便，这不是基于springIOC的做法。
     *
     *  正常的用法是：我们希望直接 @Autowired HelloFormatTemplate helloFormatTemplate 就行。
     *  但是现在并没有把HelloFormatTemplate 注入到IOC中
     *
     *  那怎么做呢？   用自动装配
     */
    @GetMapping(value = "/format")
    public String format(){
        /*FormatProcessor formatProcessor  = new JsonFormat();
        HelloFormatTemplate helloFormatTemplate = new HelloFormatTemplate(formatProcessor);
        String result = helloFormatTemplate.doFormat("test");
        return result;*/
        return "";
    }




}
